1. Field of the Invention
This invention relates to interchangeable circuit board addressing systems for computer systems, and more particularly, to extended yet backwardly compatible circuit board addressing systems.
2. Discussion of the Prior Art
Microprocessors and the personal computers which utilize them have become more powerful in recent years. Microprocessors having word sizes of 32 bits are now available. In the past 8 bits was conventional. Sixteen bit capacity only recently became widely available in personal computers.
Concomitantly with the growth in power of microprocessors, new uses for personal computer systems have arisen. The uses are varied and, as a result, have different requirements for the various subsystems forming the complete computer system. For example, personal computers used primarily for word processing have relatively modest requirements for installed memory and processor subsystems, have very high performance requirements for the mass storage subsystem and have varying requirements for the display subsystem, depending on the exact application, such as high resolution desk-top publishing or simple letter production, being performed. A data storage and retrieval-oriented system needs larger amounts of memory, a faster processor, may have lesser mass storage requirements and generally has minimal display requirements. Complex spread-sheet applications require very large amounts of memory, high performance processors, average capability mass storage subsystems and have display requirements which vary depending on whether complex graphic presentations are desired. Simple spread-sheet applications need standard amounts of memory, average performance processors, average capability mass storage subsystems and have the same display requirements as complex spread-sheet applications. Computer automated design systems require a large amount of memory, very high performance processors, high performance mass storage systems and very high performance display components.
As illustrated above, while the varying requirements for subsystems that form the complete personal computer system dictate variety, economies of volume production require manufacturing a personal computer system with as many common features as possible. This tension between variety and uniformity has resolved itself in personal computer systems through the development of basic units that vary only processor performance levels. Further inclusion of interchangeable subsystem modules is the means used by the customer to achieve variety. For instance, a basic personal computer unit is likely to contain a power supply, provisions for physically mounting various mass storage devices and a system board incorporating a microprocessor, microprocessor-related circuitry, connectors for receiving circuit boards containing other subsystems, circuitry related to interfacing the circuit boards to the microprocessor, and in some instances, memory. The use of connectors and interchangeable circuit boards allows users to install subsystems of the desired capability.
The use of interchangeable circuit boards has necessitated the development of an interface bus standard. An interface bus standard permits subsystems to be designed so that problems do not result from incompatible decisions made either by personal computer unit designers or circuit board designers. The use of interchangeable circuit boards and an interface standard, commonly called a bus specification, was incorporated into the original International Business Machine Corporation (IBM) personal computer, the IBM PC.
As mentioned initially and as has become inevitable in the computer and electronics industry, the capabilities of personal computer components have increased dramatically. Memory component prices have dropped and capacities increased. Performance rates and capacities of mass storage subsystems have increased, generally by the incorporation of hard disk units for the previous floppy disk units. Video processor technology has improved so that high resolution color systems are reasonably affordable. These developments strain the capabilities of existing IBM compatible personal computers systems. In particular, software and hardware configuration problems become evident in the devices which attempt to utilize the input/output space available with the Intel Corporation 8088, 8086, 80286, and 80386 microprocessors together with the IBM PC standards.
It has become commonplace for a user to desire to upgrade the user's original input/output subsystems as well as to add new input/output devices in connection with the bigger and faster microprocessors. The user desires to upgrade and improve input/output subsystems without replacing the user's existing application programs or present input/output devices and controllers. Both existing applications programs and present input/output devices represent a significant investment in time and money to the user. Furthermore, users prefer not having to install input/output controller boards into specific system board slots.
Implementing the user's desire to upgrade and improve the user's input/output systems is further complicated by the interface bus standard for use with computer systems related to or compatible with products produced by IBM. That interface bus has evolved through a complicated expansion path resulting from the need to overcome limitations of earlier processors, operating systems and designs. A present crucial limitation of the prior art IBM interface bus standard is that the interface bus standard limits addressing the input/output space of the circuit boards to ten bits of address space. One fourth of that space (the condition where the two most significant bits are zero) has been preserved for use by the system board and is not available to the input/output circuit boards. Hence, only a very limited amount of input/output space is available. Over time and based on usage, portions of this address area have been reserved for particular input/output devices and their controllers. The remaining amount of input/output space is limited. The remaining allocable input/output circuit board address space in IBM PC and PC compatible systems is saturated by existing input/output devices. There is insufficient address space to allocate to new advanced input/output devices and controllers that can use the size and speed of new microprocessors to advantage. Integrating a variety of new and sophisticated input/output devices and control boards with their new applications programs, well suited to the new high speed microprocessors, into a system that can still fully utilize existing input/output devices and application programs has become extremely difficult.
The above difficulty results because under the IBM conventional system input/output circuit boards know when they are addressed by decoding no more than ten bits of an input/output address word communicated through a common bus. Knowledge of its own allocated address locations within the address space defined by ten bits is fixed in the circuit boards. E.g., the circuit board knows if it is addressed when some upper bit subset of the input/output address word corresponds with a fixed code.
It would be futile with the existing system, without more, to allocate more bits to the input/output address space to extend in this manner the addressing space available. Existing boards do not decode those higher bits spaces. Thus, existing boards, ignorant of the higher bits content, might interfere with the new boards attempting to utilize this extended input/output space (an effect referred to as "mirroring").
Of course, users could discard all existing circuit boards and their application programs and convert to new boards and new programs. However, significant amounts of user energy, time and money has been expended in developing and procuring the existing circuit boards and programs. It is a goal of the present invention to provide a standard addressing system that provides for the continued use of the existing input/output devices, circuit boards and application programs.
Therefore, it is desirable to provide an addressing system for IBM compatible personal computer systems that takes advantage of the enhanced memory and processor speed and size made possible by recent advances in the computer and electronics fields while preserving the capacity to utilize existing input/output devices, circuit boards and applications programs together with additional novel input/output devices, circuit boards and application programs.